- Determine the type of Performance tests to be conducted
- Determine the transaction mix
- Methodology for Tool selection
- Considerations while scripting those transactions
The 'take-away' from this article would be all of the above and the risks and benefits of each type of Performance tests, which will help you understand the kind of tests that you need to conduct based on your Client's specifications.
Determine the type of Performance test to be conducted
In order to solve a performance need. It is very important to know the types of performance tests that can be conducted that fits the Customer's requirement.
Performance tests can be broadly classified in to * Load tests * Stress tests * Endurance tests * Spike tests * Capacity testing * Load test
Load tests are performance tests which are focused on determining or validating performance characteristics of the product under test when subjected to workload models and load volumes anticipated during production operations.
What are the benefits?
- Evaluate the adequacy of a load balancer.
- Detecting functionality errors under load.
- Determine the scalability of the application OR for capacity planning purposes as the need may be.
- What risks does it address?
Performance tests focused on determining or validating performance characteristics of the product under test when subjected to workload models, and load volumes beyond those anticipated during production operations.
- How many users can the application handle before "bad stuff" happens
- How much data can my database/file server handle?
- Are the network components adequate?
Stress test
These tests are all about determining under what conditions an application will fail how it will fail and what indicators can be monitored to warn of an impending failure.
What are the benefits?
- Determining if data can be corrupted by over stressing the system
- Estimating how far beyond the target load an application can go before causing failures and errors in addition to slowness
- Establishing application monitoring triggers to warn of impending failures
- Ensuring that security holes are not opened up by stressful conditions.
- Determining the side effects of common hardware or supporting application failures.
- What risks does it address?
- What happens if we underestimated the peak load?
- What kind of failures should we plan for?
- What indicators should we be looking for to intervene prior to failure?
Endurance test
A performance test focused on determining or validating performance characteristics of the product under test when subjected to workload models and load volumes anticipated during production operations over an extended period of time.
What are the benefits?
- Slow memory leaks
- Insufficient file storage capacity
- Performance degradation as a result of an increased in stored data
- Overnight, automatic virus definition updates on a server causing performance degradation
- What risks does it address?
- Will performance be consistent over time?
- Are there slow growing problems that we haven't detected?
- Is there external interference that we didn't account for?
Spike test
A performance test focused on determining or validating performance characteristics of the product under test when subjected to workload models and load volumes that repeatedly increase beyond anticipated production operations for short periods of time.
What are the benefits?
- Memory leaks
- Disk I/O (thrashing)
- Slow return to steady � state
- What risks does it address?
- What happens if we underestimated the peak load?
- What kind of failures should we plan for?
- What indicators should we be looking for to intervene prior to failure?
Capacity testing
Capacity testing is related to stress testing .It determines your server's ultimate failure point. You perform capacity testing in conjunction with capacity planning.
You use capacity planning to plan for future growth, such as an increased user base or increased volume of data. For example, to accommodate future loads you need to know how many additional resources (such as CPU, RAM, disk space, or network bandwidth) are necessary to support future usage levels.
Capacity testing helps you identify a scaling strategy to determine whether you should scale up or scale out.
What are the benefits?
- Provide actual data to the capacity planners to validate or enhance their models and/or predictions.
- Conduct various tests to compare capacity planning models and/or predictions.
- Determine current usage and capacity of existing system to aid in capacity planning.
- Provide usage and capacity trends of existing system to aid in capacity planning.
What risks does it address?
- Validate that capacity planning models represent reality.
- Ensure capacity planning remains in sync with actual system usage and growth patterns